home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!lll-winken!sun-barr!newstop!sun!iris.ucdavis.edu
- From: lee@iris.ucdavis.edu (Peng Lee)
- Newsgroups: comp.sources.x
- Subject: REPOST: v06i080: X-emacs-helper, Part01/01
- Message-ID: <134817@sun.Eng.Sun.COM>
- Date: 25 Apr 90 17:36:17 GMT
- Sender: news@sun.Eng.Sun.COM
- Lines: 799
- Approved: argv@sun.com
-
- Submitted-by: lee@iris.ucdavis.edu (Peng Lee)
- Posting-number: Volume 6, Issue 80
- Archive-name: emxhelp/part01
-
- [ Moderator's note: this didn't seem to get posted to several places. ]
-
- Greeting:
- I hope you will enjoy this small program I wrote.
-
- When you push a button, ECS-x and the button-label string will be send
- to the emacs window in you screen.
-
-
- -----Cut Here----
- #!/bin/sh
- # to extract, remove the header and type "sh filename"
- if `test ! -s ./Makefile`
- then
- echo "writing ./Makefile"
- cat > ./Makefile << '\End\Of\Shar\'
- DEST = .
-
- HDRS =
-
- CFLAGS = -g
-
-
- # you need to reconfig this if this file your Xm Xt is in the wrong place.
-
- INCLUDE = -I$(HOME)/x11/motif/lib/Xt -I$(HOME)/x11/motif/lib/
-
- LIBDIR = $(HOME)/x11/motif/lib/
-
- LIBS = $(LIBDIR)./Xm/libXm.a $(LIBDIR)./Xt/libXt.a -lX11
-
- CC = gcc
-
- MAKEFILE = Makefile
-
- OBJS = x_emacs_helper.o
-
- PRINT = pr
-
- SRCS = x_emacs_helper.c
-
- all: x_emacs_helper
-
- x_emacs_helper: $(SRCS) x_emacs_helper.h
- $(CC) $(CFLAGS) $(INCLUDE) x_emacs_helper.c $(LIBS) -o x_emacs_helper
-
-
- l: menu.l
- lex menu.l
- gcc -g lex.yy.c -o l -ll
-
-
-
- clean:; @rm -f $(OBJS)
-
- depend:; @mkmf -f $(MAKEFILE) PROGRAM=$(PROGRAM) DEST=$(DEST)
-
- index:; @ctags -wx $(HDRS) $(SRCS)
-
- install: $(PROGRAM)
- @echo Installing $(PROGRAM) in $(DEST)
- @install -s $(PROGRAM) $(DEST)
-
- print:; @$(PRINT) $(HDRS) $(SRCS)
-
- program: $(PROGRAM)
-
- tags: $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS)
-
- update: $(DEST)/$(PROGRAM)
-
- $(DEST)/$(PROGRAM): $(SRCS) $(LIBS) $(HDRS) $(EXTHDRS)
- @make -f $(MAKEFILE) DEST=$(DEST) install
-
-
- \End\Of\Shar\
- else
- echo "will not over write ./Makefile"
- fi
- if `test ! -s ./README`
- then
- echo "writing ./README"
- cat > ./README << '\End\Of\Shar\'
- This directory contains these files:
-
- README : This file.
-
- emacs_com.h : headers file for emacs_com.h
-
- emacs_com.c : the program
-
- Makefile : makefile for building the program.
-
-
-
-
- This program will search through the X window
- hierarchy for a emacs window. It then setup a list of
- buttons contain the commands from M-x SPACE. When one of
- the buttons is pushed, the ECS-x "command" keystrokes will be
- send to the emacs window.
-
- This program is good as a emacs tutorial. It also
- works fine for those who didn't want to remember the 400
- "basic" emacs commands, or key-stroke. (me)
-
-
- To make the program:
-
- motified the INCLUDE and LIBDIR macro definitions in
- the Makefile.
-
- Type "make"
-
-
- ToDo:
-
- I am currently working on a version that lets the
- users config their own buttons and actions.
-
- The Cap letter does not work.
-
- Use Athena widget instead of motif would be better
- for the memory. It is a 800k byte program - as big as mwm.
-
-
-
-
- Enjoy it.
-
-
- -Peng
-
- p.s By the way:
- I will graduate in June 1990. I entertain any job
- offer, and it doesn't have to relate to X-window, or motif.
- I have strong background (educational, internship) in system
- and embedded controller firmware. So, if you (or you
- company) like the program and in need of a programmer with
- strong background in hardware and software. Please send
- mail to lee@iris.ucdavis.edu, and I will send you my resume.
-
- \End\Of\Shar\
- else
- echo "will not over write ./README"
- fi
- if `test ! -s ./x_emacs_helper.c`
- then
- echo "writing ./x_emacs_helper.c"
- cat > ./x_emacs_helper.c << '\End\Of\Shar\'
- /*
- *
- * Emacs X Menu with motif widget.
- *
- *
- * By Peng Lee
- * lee@iris.ucdavis.edu
- *
- *
- */
-
-
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
-
- #include <X11/Intrinsic.h>
- #include <X11/IntrinsicP.h>
- #include <X11/CoreP.h>
- #include <X11/Shell.h>
- #include <Xm/Xm.h>
- #include <Xm/BulletinB.h>
- #include <Xm/CascadeB.h>
- #include <Xm/Frame.h>
- #include <Xm/Label.h>
- #include <Xm/MainW.h>
- #include <Xm/MessageB.h>
- #include <Xm/PushB.h>
- #include <Xm/PushBG.h>
- #include <Xm/RowColumn.h>
- #include <Xm/ScrollBar.h>
- #include <Xm/ScrolledW.h>
-
-
- #define XK_MISCELLANY
- #define XK_LATIN1
- #include <X11/keysymdef.h>
-
- #define EMACS "emacs"
- Display *dsp;
- int scr;
- Window win, des_w;
-
- FILE
- *fd;
- static XmStringCharSet charset = (XmStringCharSet) XmSTRING_DEFAULT_CHARSET;
-
- #define MAX_ARGS 10
-
- #include "x_emacs_helper.h"
- /* char *emacs_com[] = { "undo", "repl reg", NULL }; */
-
- void main();
-
- Widget CreateMainWindow(); /* create main window */
- Widget CreateCommandList(); /* create command dispay window */
-
- void SelectEmacsCommand(); /* callback for emacs send command*/
- void SelectEmacsString(); /* callback for emacs send string */
- void Quit(); /* callback for Quit */
-
- void SendString();
- void SendCommand();
-
-
- #define TITLE_STRING "X Emacs Command Helper"
-
-
-
- void main(argc, argv)
- unsigned int argc;
- char **argv;
-
- {
-
- Widget app_shell, main_window;
-
- /* if it can't open the file there is not need for file pointer
-
- if ( (fd = fopen("emacs.com","r") ) == NULL ) {
- fprintf(stderr, "can't open the file emacs.com \n");
- exit(1)
- };
- */
-
- XtToolkitInitialize();
- dsp = XtOpenDisplay (NULL, NULL, TITLE_STRING, TITLE_STRING, NULL, 0,
- &argc, argv);
-
- if (!dsp) {
- XtWarning ("%s: Can't open display, exit now");
- exit(1);
- }
- scr = DefaultScreen(dsp);
-
- app_shell = XtAppCreateShell (TITLE_STRING, "Emacs Helper",
- applicationShellWidgetClass, dsp, NULL, 0);
-
- main_window = CreateMainWindow (app_shell);
- XtRealizeWidget (app_shell);
-
- get_emacs_win();
- XtMainLoop();
-
- }
-
-
- Widget CreateMainWindow(parent)
- Widget parent;
- {
- Widget
- main_window,
- row_column, /* RowColumn */
- button, /* PushButtonGadget */
- frame, /* Frame for the window */
- swindow, /* Scroll Bar window */
- hsb, vsb; /* ScrollBars */
- Arg
- args[MAX_ARGS];
-
- XmString
- label_string;
-
-
- register int
- n = 0 ,
- i = 0 ;
-
-
-
- main_window = XmCreateMainWindow (parent, "main1", args, n);
-
- XtManageChild (main_window);
-
- n = 0;
- XtSetArg(args[n], XmNmarginWidth, 2);
-
-
- n++;
- XtSetArg(args[n], XmNmarginHeight, 2); n++;
- XtSetArg(args[n], XmNshadowThickness, 1); n++;
- XtSetArg(args[n], XmNshadowType, XmSHADOW_OUT); n++;
- frame = XmCreateFrame (main_window, "frame", args, n) ;
- XtManageChild (frame);
-
- n = 0;
- XtSetArg(args[n], XmNscrollBarDisplayPolicy, XmAS_NEEDED); n++;
- XtSetArg(args[n], XmNscrollingPolicy, XmAUTOMATIC); n++;
- swindow = XmCreateScrolledWindow (frame, "swindow", args, n);
- XtManageChild (swindow);
-
- n = 0;
- /* XtSetArg (args[n], XmNpacking, Xm_PACK_TIGHT); n++; */
- XtSetArg (args[n], XmNnumColumns, 5); n++;
- row_column = XmCreateRowColumn (swindow, "row_column", args, n);
- XtManageChild (row_column);
-
- /* XmMainWindowSetAreas (main_window, menu_bar, NULL, NULL, NULL,
- frame);
- */
- n = 0;
- XtSetArg (args[n], XmNhorizontalScrollBar, &hsb); n++;
- XtSetArg (args[n], XmNverticalScrollBar, &vsb); n++;
- XtGetValues (main_window, args, n);
- XmAddTabGroup (row_column);
- if (hsb)
- XmAddTabGroup (hsb);
- if (vsb)
- XmAddTabGroup (vsb);
-
-
- /* Create a Quit Button */
- n = 0;
- label_string = XmStringCreateLtoR("QUIT EMACS HELPER", charset);
- XtSetArg (args[n], XmNlabelString, label_string); n++;
- button = XmCreatePushButtonGadget (row_column, "QUIT", args, n);
- XtManageChild (button);
-
- /* callback for emacs command send */
-
- XtAddCallback (button, XmNarmCallback,Quit, NULL);
-
-
- /* Creat a button for each comand */
- for ( i =0; emacs_com[i] != NULL ; i++ ) {
- char name[50];
-
- strcpy(name, emacs_com[i]);
-
- n = 0;
- label_string = XmStringCreateLtoR(name, charset);
- XtSetArg (args[n], XmNlabelString, label_string); n++;
- button = XmCreatePushButtonGadget (row_column, name, args, n);
- XtManageChild (button);
- XmStringFree (label_string);
-
-
- XtAddCallback (button, XmNarmCallback,SelectEmacsCommand, NULL);
-
- /*
- n = 0;
- label_string = XmStringCreateLtoR(name, charset);
- XtSetArg (args[n], XmNlabelString, label_string); n++;
- button = XmCreatePushButtonGadget (row_column, name, args, n);
- XtManageChild (button);
- XtAddCallback (button, XmNarmCallback,SelectEmacsString, NULL);
- XmStringFree (label_string);
- */
-
- };
-
- }
-
- void Quit(wid, cli_data, call_data)
- Widget wid;
- caddr_t cli_data;
- caddr_t call_data;
- {
- exit(0);
- }
-
- SendKeySym(key_s,type,mask)
- unsigned int
- key_s,
- type,
- mask;
- {
- XKeyEvent key;
-
- key.state = mask;
- key.type = type;
- key.keycode = XKeysymToKeycode(dsp, key_s);
- XSendEvent(dsp,des_w, True,
- (KeyPressMask|KeyReleaseMask), (XEvent *) &key);
- }
-
-
- void SelectEmacsString(wid, cli_data, call_data)
- Widget wid;
- caddr_t cli_data;
- caddr_t call_data;
- {
- register int
- n;
- Arg
- args[MAX_ARGS];
- char
- *name;
-
- XmString
- name_string;
-
- n = 0;
- XtSetArg (args[n], XmNlabelString, &name_string); n++;
- XtGetValues (wid, args, n);
- XmStringGetLtoR (name_string, charset, &name);
-
- if (name) SendString(name);
-
- }
-
-
- void SendString(name)
- char *name;
- {
- #define Case1(a,b) case a: SendKeySym(b, KeyPress, 0); break;
- char ctmp[2] = { NULL, NULL } ; /* make sure 2nd char is NULL */
- register int i;
-
-
- for(i=0; i<strlen(name); i++){
- ctmp[0] = name[i];
- if (isalpha(ctmp[0])|| (isdigit(ctmp[0])) )
- SendKeySym(XStringToKeysym(ctmp), KeyPress , 0 );
- else if (isupper(ctmp[0]))
- SendKeySym(XStringToKeysym(ctmp), KeyPress , ShiftMask );
- else
- switch (ctmp[0]) {
- Case1('-', XK_minus);
- Case1(' ', XK_space);
- Case1('+', XK_plus);
- };
-
- };
-
- #undef Case1
-
- }
-
- void SelectEmacsCommand( wid, cli_data, call_data )
- Widget wid;
- caddr_t cli_data;
- caddr_t call_data;
- {
- register int
- n;
- Arg
- args[MAX_ARGS];
- char
- *name;
-
- XmString
- name_string;
-
- n = 0;
- XtSetArg (args[n], XmNlabelString, &name_string); n++;
- XtGetValues (wid, args, n);
- XmStringGetLtoR (name_string, charset, &name);
-
- if (name) SendCommand(name);
-
- }
-
- void SendCommand(name)
- char *name;
- {
- XKeyEvent key;
- char ctmp[2] = { NULL,NULL }; /* make sure 2nd char is NULL */
- register int i;
-
- key.state = 0; /* no control key */
- key.type = KeyPress;
-
- /* send a ECS and X key first */
- SendKeySym(XK_Escape,KeyPress, 0);
- SendKeySym(XK_x,KeyPress, 0);
-
- SendString(name);
-
- /* Last the return Key */
- SendKeySym(XK_Return,KeyPress, 0);
-
- }
-
-
- get_emacs_win()
- {
- checkwin(RootWindow(dsp,scr ));
- }
-
-
- checkwin(w)
- Window w;
- {
- Window root, parent;
- unsigned int nchildren;
- Window *children = NULL;
- Status status;
- int i;
- char *name = NULL;
-
- if (XFetchName(dsp,w, &name)) {
- if (!strncmp(name,EMACS,4) ) {
- des_w = w;
- return;
- }
- }
- if (name) free(name);
-
- if (!XQueryTree(dsp,w, &root, &parent, &children, &nchildren))
- return;
-
- for (i =0; i < nchildren; i++)
- checkwin(children[i]);
-
- }
-
-
- \End\Of\Shar\
- else
- echo "will not over write ./x_emacs_helper.c"
- fi
- if `test ! -s ./x_emacs_helper.h`
- then
- echo "writing ./x_emacs_helper.h"
- cat > ./x_emacs_helper.h << '\End\Of\Shar\'
- char *emacs_com[] =
- {
- "abbrev-mode", "abbrev-prefix-mark",
- "abort-recursive-edit", "add-change-log-entry",
- "add-change-log-entry-other-window", "add-global-abbrev",
- "add-mode-abbrev", "add-name-to-file",
- "advertised-undo", "append-next-kill",
- "append-to-buffer", "append-to-file",
- "append-to-register", "apropos",
- "auto-fill-mode", "auto-save-mode",
- "back-to-indentation", "backtrace",
- "backward-char", "backward-delete-char",
- "backward-delete-char-untabify", "backward-kill-paragraph",
- "backward-kill-sentence", "backward-kill-sexp",
- "backward-kill-word", "backward-list",
- "backward-page", "backward-paragraph",
- "backward-sentence", "backward-sexp",
- "backward-to-indentation", "backward-up-list",
- "backward-word", "basic-save-buffer",
- "beginning-of-buffer", "beginning-of-defun",
- "beginning-of-line", "buffer-enable-undo",
- "buffer-menu", "bury-buffer",
- "byte-compile-file", "byte-recompile-directory",
- "c-indent-command", "c-macro-expand",
- "c-mode", "calendar",
- "call-last-kbd-macro", "cancel-debug-on-entry",
- "capitalize-region", "capitalize-word",
- "cd", "center-line",
- "center-paragraph", "center-region",
- "clear-rectangle", "command-apropos",
- "command-history-mode", "compare-windows",
- "compile", "convert-mocklisp-buffer",
- "copy-file", "copy-last-shell-input",
- "copy-rectangle-to-register", "copy-region-as-kill",
- "copy-to-buffer", "copy-to-register",
- "count-lines-page", "count-lines-region",
- "count-matches", "csh",
- "ctl-x-4-prefix", "dabbrev-expand",
- "date", "debug-on-entry",
- "define-abbrevs", "define-global-abbrev",
- "define-mail-alias", "define-mode-abbrev",
- "delete-backward-char", "delete-blank-lines",
- "delete-char", "delete-file",
- "delete-horizontal-space", "delete-indentation",
- "delete-matching-lines", "delete-non-matching-lines",
- "delete-other-windows", "delete-rectangle",
- "delete-region", "delete-window",
- "delete-windows-on", "describe-bindings",
- "describe-copying", "describe-distribution",
- "describe-function", "describe-key",
- "describe-key-briefly", "describe-mode",
- "describe-no-warranty", "describe-syntax",
- "describe-variable", "digit-argument",
- "dired", "dired-other-window",
- "disable-command", "disassemble",
- "display-time", "dissociated-press",
- "do-auto-save", "doctor",
- "down-list", "down-open-tab",
- "downcase-region", "downcase-word",
- "edit-abbrevs", "edit-abbrevs-mode",
- "edit-abbrevs-redefine", "edit-options",
- "edit-picture", "edit-tab-stops",
- "edit-tab-stops-note-changes", "edt-emulation-on",
- "electric-buffer-list", "electric-c-brace",
- "electric-c-semi", "electric-c-terminator",
- "electric-command-history", "emacs-lisp-mode",
- "emacs-version", "enable-command",
- "end-kbd-macro", "end-of-buffer",
- "end-of-defun", "end-of-line",
- "enlarge-window", "enlarge-window-horizontally",
- "eval-current-buffer", "eval-defun",
- "eval-expression", "eval-last-sexp",
- "eval-print-last-sexp", "eval-region",
- "exchange-dot-and-mark", "exchange-point-and-mark",
- "execute-extended-command", "exit-minibuffer",
- "exit-recursive-edit", "expand-abbrev",
- "expand-region-abbrevs", "fase",
- "fill-individual-paragraphs", "fill-paragraph",
- "fill-region", "fill-region-as-paragraph",
- "find-alternate-file", "find-file",
- "find-file-other-window", "find-file-read-only",
- "find-tag", "find-tag-other-window",
- "fixup-whitespace", "flush-lines",
- "fortran-mode", "forward-char",
- "forward-line", "forward-list",
- "forward-page", "forward-paragraph",
- "forward-sentence", "forward-sexp",
- "forward-to-indentation", "forward-word",
- "ftp-find-file", "ftp-write-file",
- "fundamental-mode", "garbage-collect",
- "gdb", "global-set-key",
- "global-unset-key", "gnus",
- "goto-char", "goto-line",
- "grep", "hanoi",
- "help-for-help", "help-with-tutorial",
- "how-many", "indent-according-to-mode",
- "indent-c-exp", "indent-code-rigidly",
- "indent-for-comment", "indent-for-tab-command",
- "indent-new-comment-line", "indent-region",
- "indent-relative", "indent-relative-maybe",
- "indent-rigidly", "indent-sexp",
- "indent-to", "indent-to-column",
- "indented-text-mode", "inferior-lisp-mode",
- "info", "insert-abbrevs",
- "insert-buffer", "insert-file",
- "insert-kbd-macro", "insert-parentheses",
- "insert-register", "interrupt-shell-subjob",
- "inverse-add-global-abbrev", "inverse-add-mode-abbrev",
- "isearch-backward", "isearch-backward-regexp",
- "isearch-forward", "isearch-forward-regexp",
- "ispell-buffer", "ispell-complete-word",
- "ispell-region", "ispell-word",
- "just-one-space", "justify-current-line",
- "kbd-macro-query", "kcl",
- "keep-lines", "keyboard-quit",
- "kill-all-abbrevs", "kill-buffer",
- "kill-comment", "kill-compilation",
- "kill-emacs", "kill-grep",
- "kill-line", "kill-local-variable",
- "kill-output-from-shell", "kill-paragraph",
- "kill-rectangle", "kill-region",
- "kill-ring-save", "kill-sentence",
- "kill-sexp", "kill-shell-input",
- "kill-shell-subjob", "kill-some-buffers",
- "kill-word", "latex-mode",
- "ledit-mode", "lisp-complete-symbol",
- "lisp-defaults", "lisp-indent-line",
- "lisp-interaction-mode", "lisp-mode",
- "lisp-send-defun", "lisp-send-defun-and-go",
- "list-abbrevs", "list-buffers",
- "list-command-history", "list-directory",
- "list-matching-lines", "list-options",
- "list-processes", "list-tags",
- "load-file", "load-library",
- "local-set-key", "local-unset-key",
- "lpr-buffer", "lpr-region",
- "mail", "mail-other-window",
- "make-command-summary", "make-local-variable",
- "make-symbolic-link", "make-variable-buffer-local",
- "manual-entry", "mark-c-function",
- "mark-defun", "mark-end-of-sentence",
- "mark-page", "mark-paragraph",
- "mark-sexp", "mark-whole-buffer",
- "mark-word", "mh-defaults",
- "mh-rmail", "mh-smail",
- "minibuffer-complete", "minibuffer-complete-and-exit",
- "minibuffer-complete-word", "minibuffer-completion-help",
- "modify-syntax-entry", "modula-2-mode",
- "move-past-close-and-reindent", "move-to-window-line",
- "name-last-kbd-macro", "narrow-to-page",
- "narrow-to-region", "negative-argument",
- "newline", "newline-and-indent",
- "news-post-news", "next-complex-command",
- "next-error", "next-file",
- "next-line", "nntp",
- "normal-mode", "not-case-fold",
- "not-modified", "nroff-mode",
- "obj", "occur",
- "occur-mode-goto-occurrence", "open-dribble-file",
- "open-line", "open-rectangle",
- "open-termscript", "orient-window",
- "other-window", "outline-mode",
- "overwrite-mode", "picture-mode",
- "plain-tex-mode",
- "point-to-register", "postnews",
- "prepend-to-buffer", "prepend-to-register",
- "previous-complex-command", "previous-line",
- "print-buffer", "print-region",
- "prolog-mode", "psychoanalyze-pinhead",
- "pwd", "query-replace",
- "query-replace-regexp", "quit-shell-subjob",
- "quoted-insert", "re-search-backward",
- "re-search-forward", "read-abbrev-file",
- "recenter", "recover-file",
- "recursive-edit", "redraw-display",
- "register-to-point", "reindent-then-newline-and-indent",
- "rename-buffer", "rename-file",
- "repeat-complex-command", "repeat-matching-complex-command",
- "replace-buffer-in-windows", "replace-regexp",
- "replace-string", "revert-buffer",
- "rmail", "rmail-input",
- "rnews", "rotate-yank-pointer",
- "run-lisp", "run-prolog",
- "run-scheme", "save-buffer",
- "save-buffers-kill-emacs", "save-some-buffers",
- "scheme-mode", "scribe-mode",
- "scroll-down", "scroll-left",
- "scroll-other-window", "scroll-right",
- "scroll-up", "search-backward",
- "search-forward", "self-insert-and-exit",
- "self-insert-command", "send-string-to-process",
- "sendnews", "server-start",
- "set-comment-column", "set-fill-column",
- "set-fill-prefix", "set-goal-column",
- "set-gosmacs-bindings", "set-mark-command",
- "set-selective-display", "set-variable",
- "set-visited-file-name", "shell",
- "shell-beginning-of-line", "shell-command",
- "shell-command-on-region", "shell-filename-expand",
- "shell-history-search-backward", "shell-history-search-forward",
- "shell-list-history", "shell-mode",
- "shell-next-command", "shell-previous-command",
- "shell-push-input", "shell-send-eof",
- "shell-send-input", "show-output-from-shell",
- "shrink-window", "shrink-window-horizontally",
- "sort-columns", "sort-fields",
- "sort-lines", "sort-numeric-fields",
- "sort-pages", "sort-paragraphs",
- "sort-regexp-fields", "spell-buffer",
- "spell-region", "spell-string",
- "spell-word", "split-line",
- "split-window", "split-window-horizontally",
- "split-window-vertically", "start-kbd-macro",
- "stop-shell-subjob", "suspend-emacs",
- "switch-to-buffer", "switch-to-buffer-other-window",
- "tab-to-tab-stop", "tabify",
- "tags-apropos", "tags-loop-continue",
- "tags-query-replace", "tags-search",
- "telnet", "terminal-emulator",
- "tex-mode", "texinfo-format-buffer",
- "texinfo-format-region", "texinfo-mode",
- "text-defaults", "text-mode",
- "toggle-read-only", "top-level",
- "transpose-chars", "transpose-lines",
- "transpose-paragraphs", "transpose-sentences",
- "transpose-sexps", "transpose-words",
- "undefined", "underline-region",
- "undo", "unexpand-abbrev",
- "universal-argument", "untabify",
- "ununderline-region", "up-list",
- "upcase-region", "upcase-word",
- "vi-mode", "view-buffer",
- "view-emacs-news", "view-file",
- "view-lossage", "view-register",
- "vip-mode", "visit-tags-table",
- "what-cursor-position", "what-line",
- "what-page", "where-is",
- "widen", "word-search-backward",
- "word-search-forward", "write-abbrev-file",
- "write-file", "write-region",
- "x-flip-color", "x-flush-mouse-queue",
- "x-new-display", "x-set-background-color",
- "x-set-bell", "x-set-big-font",
- "x-set-border-color", "x-set-border-width",
- "x-set-cursor-color", "x-set-font",
- "x-set-foreground-color", "x-set-huge-font",
- "x-set-internal-border-width", "x-set-mouse-color",
- "x-set-small-font", "x-store-cut-buffer",
- "yank", "yank-pop",
- "yank-rectangle", "yow",
- "zap-to-char",
- NULL, NULL};
- \End\Of\Shar\
- else
- echo "will not over write ./x_emacs_helper.h"
- fi
- echo "Finished archive 1 of 1"
- exit
-
-
-
-
- dan
- -----------------------------------------------------------
- O'Reilly && Associates
- argv@sun.com / argv@ora.com
- 632 Petaluma Ave, Sebastopol, CA 95472
- 800-338-NUTS, in CA: 800-533-NUTS, FAX 707-829-0104
- Opinions expressed reflect those of the author only.
-